A user who desires to build an application generally will rely on one or more application development tools to create the application. Although source code for an application can be entered manually in text form, much conventional application development makes use of more sophisticated authoring tools, packages or suites that, in addition to allowing text entry, provide options to aid the code authoring process. As another example, ADOBE® FLASH®, available from Adobe Systems Inc. of San Jose, Calif., can be used to build applications including artwork and dynamic behavior without the specific need to use source code.
A developer may use a particular subset of application development tools to design visually pleasing interface elements in conjunction with art designs. For example, a design artist may prepare one or more representations of desired visual states for an application, generally referred to herein as “artwork.” An application developer may use an application development tool to develop one or more applications that use the artwork.
The artwork may be divided into “fragments” representing different portions of the artwork. The visual appearance of a component (e.g., an interface component) may include numerous fragments of artwork, which may represent the appearance of a different parts and states of the component.
As an example, artwork fragments representing different states of an interface component such as a button can be converted by a developer into a suitable form and associated with code defining the button so that, when the code is executed, an interface including the button is produced by the application. The button may support different states, each state having a respective appearance achieved by using different fragments or different arrangements of fragments. As another example, the same artwork fragment may be used in two or more states, but with slight variations in appearance such as color, size, or position. The artwork fragments for the different states may be referred to as a “skin” for the button. As another example, the developer may write code that changes the properties of the button (e.g., color of a box that comprises the button) for different states.
Although an art designer may prepare a visually-pleasing art design, the designer may not be skilled in (or responsible for) preparing the code that implements the design as part of a functional application. Conversely, a developer preparing the code to implement art design features may not be skilled in art design. Regardless of art design capability, making adjustments to a visual appearance of a component by adjusting code may be a time-consuming process.